<?php
	try {
		require_once '../../controller/controller.inc.php';
	    
		if ($pfcid != PerfilComportamental::Orgao
		    AND $pfcid != PerfilComportamental::NucleoGestor) {
		    $usuario->redirectUnauthorized();        
	    }
	    
	    $info = NULL;
	    
	    if ((isset($_POST['btnAcao']) AND $_POST['btnAcao'] == 'Excluir') 
	        OR (isset($_GET['method']) && $_GET['method'] == 'excluir' && isset($_GET['id']))) {
            
            if (!isset( $_POST['chkRegistro']) AND !isset($_GET['id'])) {
                throw new Exception(TMensagens::getNenhumItemSelecionado());
            }
            
            if ($pfcid != PerfilComportamental::NucleoGestor) {
                throw new Exception('Somente um Núcleo Gestor pode excluir candidatos.');
            }
	            
	        $ids = (isset($_POST['chkRegistro'])) ? $_POST['chkRegistro'] : array($_GET['id']);
	            
	        try {
	            pg_query(conexao::Conectar(), 'begin');
	            
	            foreach ($ids as $id) {
	                $vaga = new Vaga($id);
	                $vaga->statusid = Status::Vaga_AContratar;
	                $vaga->ativa = FALSE;
	                $vaga->salvar();
	                
	                $candidatoVaga = $vaga->getCandidatoVagaAtivo();
	                
	                // Se existe um candidato naquela vaga, desvincular
	                if ($candidatoVaga->getTableKeyValue()) {
	                    $candidatoVaga->ativo = FALSE;
	                    $candidatoVaga->demissao = date('Y-m-d');
	                    $candidatoVaga->salvar();
	                    
	                    $candidatoVaga->inserirHistorico(Status::Devolucao_Confirmada);
	                }
	            }
	            
	            pg_query(conexao::Conectar(), 'commit');
	            
	            header('location: index.php?message=exclusao');
	        }
	        catch (Exception $e) {
	            pg_query(conexao::Conectar(), 'rollback');
	            throw new Exception($e->getMessage());
	        }
	            
	    }
	}
	catch(exception $e){		
		$erro = $e->getMessage();		
	}	
?>